#ifndef __DATA_H__
#define __DATA_H__

#define COLOR_GREEN "\033[32m"
#define COLOR_BLUE "\033[34m"
#define COLOR_RESET "\033[0m"

typedef struct Airline
{
    char airline[20]; // 航空公司
    int fuel_fee;     // 燃油费
    int airport_tax;  // 机场建设费
    int Penalty;      // 违约金扣除比例 n*0.01
} Airline_t, *Airline_p;

// 航班信息
typedef struct flight
{
    char airline[20];   // 航空公司
    char flight_id[20]; // 航班号
    char start[20];     // 起飞地
    char end[20];       // 目的地
    char date[11];      // 起飞日期
    char time[6];       // 起飞时间
    int price[5];       // 票价    商务舱，一等舱，经济舱，头等舱，公务舱
    int seat[5];        // 座位数  商务舱，一等舱，经济舱，头等舱，公务舱
    int remainder[5];   // 余票    商务舱，一等舱，经济舱，头等舱，公务舱
    int status;         // 订单状态  // 0  正在进行 1  已完成
} flight_t, *flight_p;

// 航班链表
typedef struct flight_Node
{
    flight_p data;
    struct flight_Node *prev;
    struct flight_Node *next;
} flight_Node_t, *flight_Node_p;

// 用户订单表
typedef struct my_flight
{
    char username[20];  // 用户名
    char airline[20];   // 航空公司
    char flight_id[20]; // 航班号
    int seat_type;      // 座位类型  // 0 商务舱，1 一等舱，2 经济舱，3 头等舱，4 公务舱
    int price;          // 总价格
    int status;         // 订单状态  // 0  正在进行 1  已完成
} my_flight_t, *my_flight_p;

// 用户订单链表
typedef struct my_flight_Node
{
    my_flight_p data;
    struct my_flight_Node *prev;
    struct my_flight_Node *next;
} my_flight_Node_t, *my_flight_Node_p;

typedef struct user
{
    char username[20]; // 用户名
    char password[20]; // 密码
    char phone[20];    // 手机号
    char airline[20];  // 航空公司
    int user_type;     // 是否为管理员  0 普通用户 1 管理员
    int money;         // 余额
} user_t, *user_p;

typedef struct user_Node
{
    user_p data;
    struct user_Node *prev;
    struct user_Node *next;
} user_Node_t, *user_Node_p;

extern char Login_Username[20];            // 登录用户名
extern user_Node_p user_headNode;          // 用户链表
extern flight_Node_p flight_headNode;      // 航班链表
extern flight_Node_p airline_headNode;     // 航空公司链表
extern my_flight_Node_p myflight_headNode; // 用户航班记录链表
extern Airline_t airline[3];               // 航空公司

enum MENU_LOGIN
{
    EXIT_SYSTEM = 0, // 退出系统
    LOGIN,           // 登录
    ENROLL           // 注册
};

#endif